SSB(SQLservice Service Broker) 入门实例介绍
begin transaction

Update inventory set Quantity = @amount where TitleId = @title;
--create procedure to receive message and update table
Update inventory set Quantity = @amount where TitleId = @title;
declare @message_body xml
Create table inventory
set @title = @message_body.value('(/InventoryUpdate/TitleId)[1]','nvarchar(100)');
go
复制代码 代码如下:
复制代码 代码如下:
use Inventorydeclare @title nvarchar(128);
begin transaction
创建合约
);
use master
--send message
数据同时被更新了
@dialog_id = conversation_handle,复制代码 代码如下:
create proc InventoryProc as
go
复制代码 代码如下:
队列监听use Inventory
declare @dialog_id uniqueidentifier
创建队列与服务
primary key (TitleId,Quantity)
@message_body = message_body
print 'handle is' + cast(@dialog_id as nvarchar(90))
Create Message Type [//mark/v10/types/inventoryresponse]
go
step 2: 创建整个SSB的基础框架.
(
from service [//mark/v10/services/inventory client]
commit transaction;
<Quantity>102</Quantity>
[//mark/v10/contracts/inventorycontract]
print 'message body is' + cast(@message_body as nvarchar(max) )
Create contracts [//mark/v10/contracts/inventorycontract]
@message_body = message_body
<TitleId>pc1001</TitleId>
declare @amount int;
set @title = @message_body.value('(/InventoryUpdate/TitleId)[1]','nvarchar(100)');
(
</InventoryUpdate>'
use Inventory
Quantity int not null,
if(@dialog_id is not null)
print 'message body is' + cast(@message_body as nvarchar(max) )
操作成功后再去查询inventory queue的表 犹豫里面的数据已经被receive 出来 就为空了。
[//mark/v10/types/inventory] send by initiator,
insert inventory values ('pc1003',300);
commit transaction;
);
首先建立个存储过程,(把receive 中的那段代码拿过来就可以了)
to service '//mark/v10/services/inventory'
print 'handle is' + cast(@dialog_id as nvarchar(90))
go
setp 4: 从 inventory queue 中获取信息并更新数据
create service [//mark/v10/services/inventory client]
declare @message_body xml
end
set @amount = @message_body.value('(/InventoryUpdate/Quantity)[1]','int');
waitfor(
go
print 'a:'+cast(@amount as nvarchar(100))
复制代码 代码如下:
send on conversation @dialog_id message type [//mark/v10/types/inventory]receive
receive
on contract [//mark/v10/contracts/inventorycontract]
select conversation_handle, cast(message_body as xml) as conversation_body from [Inventory queue]
'<InventoryUpdate>
commit transaction;
begin
go
go
declare @amount int;
step 3:发送消息到消息队列中
复制代码 代码如下:
print 'a:'+cast(@amount as nvarchar(100))end conversation @dialog_id;
declare @dialog_id uniqueidentifier
);
insert inventory values ('pc1002',200);
begin dialog conversation @dialog_id
create queue [inventory queue];
go
begin
复制代码 代码如下:
其中conversation_body 就是 我们发出的信息了。 set @amount = @message_body.value('(/InventoryUpdate/Quantity)[1]','int');use inventory
首先创建信息类型
begin transaction
go
step 5: 接下来做个自动监听功能,只要有信息发送到队列,相关队列,就可以自动执行功能.
(
print 'b:'+@title;
这里只是查询了两列。
@dialog_id = conversation_handle,
(
from [dbo].[Inventory queue]),timeout 5000;
create queue [inventory client queue];
);
复制代码 代码如下:
from [dbo].[Inventory queue]insert inventory values ('pc1004',400);
insert inventory values ('pc1001',100);
end
TitleId nvarchar(6) not null,
if(@dialog_id is not null)
on queue [inventory client queue]
step 1:perpar database & data
发送成功后,可以查询 inventory_queue
with encryption = off;
复制代码 代码如下:
[//mark/v10/types/inventoryresponse] send by targetCreate database Inventory
on queue [inventory queue]
相关热词: 实例
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/sql/mssql/3051.shtml
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
SQL基本教程之行转列Pivo
时间:2021-01-20
-
region from hr.Employees union
时间:2021-01-20
-
有时候需要调整用户权限
时间:2021-01-19
-
(但使用 ORDER BY 子句并不
时间:2021-01-19
-
RAND()*10000)insert into Detail
时间:2021-01-19
-
OR 运算符:在两侧的查询
时间:2021-01-19
-
放假之前老大跟我提起了
时间:2021-01-19
-
数据库的运维计策剧本篇
时间:2021-01-19
热门文章
-
4.与聚合函数和 GROUP BY 子句有关的常见错
时间:2021-01-19
-
SQL Server安全(11/11):审核(Auditing)
时间:2021-01-09
-
sqlserver中查询横表变竖表的sql语句简析
时间:2020-12-08
-
SQL Server简单模式下误删除堆表记录恢复方
时间:2020-12-12
-
关于SQL Server查询语句的使用
时间:2020-12-13
-
MSSQL教程_mssql数据库教程_MSSQL基础教程_第
时间:2020-12-13
-
jdbc连接sql server数据库问题分析
时间:2020-12-10
-
详解SQL游标的用法
时间:2020-12-27
-
sql server 关于设置null的一些建议
时间:2020-12-28
-
mssql关于一个表格结构的另外一种显示(表
时间:2020-12-11
